package com.cg.asm.body.service.roles;

import com.cg.asm.body.domain.dto.roles.RolesDTO;
import com.cg.asm.body.domain.vo.roles.RolesChoiceVO;
import com.cg.asm.body.domain.vo.roles.RolesPagedVO;
import com.cg.asm.client.exception.MybatisExample;
import com.github.pagehelper.PageInfo;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public interface IRolesInfoService {

    /**
     * 查询用户列表信息（分页）
     *
     * @param mybatisExample
     * @return
     */
    PageInfo<RolesPagedVO> selectByRolesInfo(MybatisExample mybatisExample);

    /**
     * 校验角色是否唯一
     *
     * @param roleId
     * @return
     */
    boolean roleIsUnique(String roleId);

    /**
     * 保存角色信息
     *
     * @param rolesDTO
     */
    void saveNewRole(RolesDTO rolesDTO);

    /**
     * 根据角色Id删除角色信息
     *
     * @param roleIds
     */
    void delRole(String[] roleIds);

    /**
     * 保存编辑的角色信息
     *
     * @param rolesDTO
     */
    void saveEditRole(RolesDTO rolesDTO);

    /**
     * 获取可选择的所有管理类角色
     *
     * @return
     */
    List<RolesChoiceVO> roleByManager();

    /**
     * 获取可选择的所有执行类角色
     *
     * @return
     */
    List<RolesChoiceVO> roleByExecute();
}
